
--输出日志--
function log(str)
    Util.Log(str);
end

--错误日志--
function logError(str) 
	Util.LogError(str);
end

--警告日志--
function logWarn(str) 
	Util.LogWarning(str);
end

--查找对象--
function find(str)
	return GameObject.Find(str);
end

function destroy(obj)
	GameObject.Destroy(obj);
end

function newObject(prefab)
	return GameObject.Instantiate(prefab);
end

--创建面板--
function createPanel(name)
	PanelManager:CreatePanel(name);
end

function child(str)
	return transform:FindChild(str);
end

function subGet(childNode, typeName)		
	return child(childNode):GetComponent(typeName);
end

function findPanel(str) 
	local obj = find(str);
	if obj == nil then
		error(str.." is null");
		return nil;
	end
	return obj:GetComponent("BaseLua");
end


--//直接打印到屏幕
function look(...)
	local tb = {...}
	local cs = "\n"
	for i,v in ipairs(tb) do
		cs = cs..i.." -> "..tableprint(v).."\n"
	end
	print(cs)
end

function tableprint(data,cstring,deepIndex)  --第二个参数可以为空，第三个参数不要手动添加，它是用来进行打印深度控制的。
    if data == nil then   
        return "nil"
    end
    if deepIndex == nil then deepIndex = 1 end
    if cstring == nil then cstring = "" end
    local cs = cstring;  
    -- print(cstring .."{");  
    if(type(data)=="table") then  
        cs = cs.." {\n"
        for k, v in pairs(data) do  
            if(type(v) == "table") then 
            	cs = cs..tostring(k).."  tb =  \n"
            else 
            	cs = (cs..tostring(k).." = "..tostring(v)).."\n"
            end
            if(type(v)=="table") then
                if (deepIndex + 1) < 20 then  --5就是控制的打印深度(你可以根据需要调整)，以防数据结构中存在循环饮用(别以为不可能，我就遇到过)
                    if tostring(k) ~= "__index" then
                        cs = cs.. tableprint(v,cs,(deepIndex+1));
                    end
                else
                    cs = (cs.." {"..tostring(v).."}").."\n"
                end
            end  
        end  
        cs = cs.."}"
    else  
        cs = (cs..tostring(data))
    end  
    return cs
end
